home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / wgdb-42.lha / wgdb-4.2 / gdb / tm-nindy960.h < prev    next >
C/C++ Source or Header  |  1992-09-11  |  4KB  |  101 lines

  1. /* Parameters for Intel 960 running NINDY monitor, for GDB, the GNU debugger.
  2.    Copyright (C) 1990-1991 Free Software Foundation, Inc.
  3.    Contributed by Intel Corporation and Cygnus Support.
  4.  
  5. This file is part of GDB.
  6.  
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or
  10. (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  20.  
  21. /*****************************************************************************
  22.  * Definitions to target GDB to an i960 debugged over a serial line.
  23.  ******************************************************************************/
  24.  
  25. #include "tm-i960.h"
  26.  
  27. /* Override the standard gdb prompt when compiled for this target.  */
  28.  
  29. #define    DEFAULT_PROMPT    "(gdb960) "
  30.  
  31. /* Additional command line options accepted by nindy gdb's, for handling
  32.    the remote-nindy.c interface.  These should really be target-specific
  33.    rather than architecture-specific.  */
  34.  
  35. extern int nindy_old_protocol;    /* nonzero if old NINDY serial protocol */
  36. extern int nindy_initial_brk;    /* Send a BREAK to reset board first */
  37. extern char *nindy_ttyname;    /* Name of serial port to talk to nindy */
  38.  
  39. #define    ADDITIONAL_OPTIONS \
  40.     {"O", 0, &nindy_old_protocol, 1},    \
  41.     {"brk", 0, &nindy_initial_brk, 1},    \
  42.     {"r", 1, 0, 1004},  /* 1004 is magic cookie for ADDL_CASES */
  43.  
  44. #define    ADDITIONAL_OPTION_CASES    \
  45.     case 1004:    /* -r option:  remote nindy auto-start */    \
  46.       nindy_ttyname = optarg;    \
  47.       break;
  48.  
  49. #define    ADDITIONAL_OPTION_HELP \
  50.     "\
  51.   -O                Use old protocol to talk to a Nindy target\n\
  52.   -brk              Send a break to a Nindy target to reset it.\n\
  53.   -r SERIAL         Open remote Nindy session to SERIAL port.\n\
  54. "
  55.  
  56. /* If specified on the command line, open tty for talking to nindy,
  57.    and download the executable file if one was specified.  */
  58.  
  59. #define    ADDITIONAL_OPTION_HANDLER    \
  60.     if (!setjmp (to_top_level) && nindy_ttyname) {        \
  61.       nindy_open (nindy_ttyname, !batch);            \
  62.       if ( !setjmp(to_top_level) && execarg ) {        \
  63.         target_load (execarg, !batch);            \
  64.       }                            \
  65.     }
  66.  
  67. /* If configured for i960 target, we take control before main loop
  68.    and demand that we configure for a nindy target.  */
  69.  
  70. #define    BEFORE_MAIN_LOOP_HOOK    \
  71.   nindy_before_main_loop();
  72.  
  73. /* Address of end of stack space.
  74.  *    This probably doesn't matter for nindy, because it's only used
  75.  *    in manipulation of core files, which we don't support.
  76.  */
  77.  
  78. #define STACK_END_ADDR (0xfe000000)
  79.  
  80. /* FRAME_CHAIN_VALID returns zero if the given frame is the outermost one
  81.    and has no caller.  In that case, FRAME_CHAIN_COMBINE is not used.
  82.  
  83.    On the i960, each various target system type defines FRAME_CHAIN_VALID,
  84.    since it differs between NINDY and VxWorks, the two currently supported
  85.    targets types.  */
  86.  
  87. #define    FRAME_CHAIN_VALID(chain, thisframe) \
  88.     nindy_frame_chain_valid (chain, thisframe)
  89.  
  90. extern int nindy_frame_chain_valid();        /* See nindy-tdep.c */
  91.  
  92. /* Sequence of bytes for breakpoint instruction */
  93.  
  94. #define BREAKPOINT {0x00, 0x3e, 0x00, 0x66}
  95.  
  96. /* Amount ip must be decremented by after a breakpoint.
  97.  * This is often the number of bytes in BREAKPOINT but not always.
  98.  */
  99.  
  100. #define DECR_PC_AFTER_BREAK 0
  101.